home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / music / eked-m1.zoo / src / para_tab.c < prev    next >
C/C++ Source or Header  |  1995-02-19  |  19KB  |  674 lines

  1. /*
  2.  *  EKED-M1 : Editor for Korg M1 synth; para_tab.c : parameter tables
  3.  *  Copyright (C) 1995 Steven M. Eker (Steven.Eker@brunel.ac.uk)
  4.  *
  5.  *  This program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2 of the License, or
  8.  *  (at your option) any later version.
  9.  *
  10.  *  This program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  *  GNU General Public License for more details.
  14.  *
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with this program; if not, write to the Free Software
  17.  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  */
  19.  
  20. #include <stddef.h>
  21. #include <gemfast.h>
  22. #include "gm/gem_man.h"
  23. #include "eked-m1.h"
  24. #include "defs.h"
  25. #include "types.h"
  26. #include "externs.h"
  27.  
  28. PARAMETER pm_table[]={
  29.   {PM_WAVE,    19,    WAVE,    10,    19,    8},
  30.   {PM_KSYNC,    19,    BIT7,    10,    19,    14},
  31.   {PM_FREQ,    20,    UNUM,    10,    19,    10},
  32.   {PM_DELAY,    21,    UNUM,    10,    19,    11},
  33.   {PM_INT,    22,    UNUM,    10,    19,    12},
  34.   {PM_PB_AT,    27,    SN12,    12,    21,    8},
  35.   {PM_IN_AT,    28,    UNUM,    12,    21,    9},
  36.   {PM_PB_JS,    32,    SN12,    13,    22,    8},
  37.   {PM_IN_JS,    34,    UNUM,    13,    22,    11},
  38.   {PM_FQ_JS,    35,    UN3,    13,    22,    12}
  39. };
  40.  
  41. PARAMETER fm_table[]={
  42.   {FM_WAVE,    23,    WAVE,    11,    20,    8},
  43.   {FM_KSYNC,    23,    BIT7,    11,    20,    14},
  44.   {FM_FREQ,    24,    UNUM,    11,    20,    10},
  45.   {FM_DELAY,    25,    UNUM,    11,    20,    11},
  46.   {FM_INT,    26,    UNUM,    11,    20,    12},
  47.   {FM_CO_AT,    29,    SNUM,    12,    21,    11},
  48.   {FM_IN_AT,    30,    UNUM,    12,    21,    12},
  49.   {FM_CO_JS,    33,    SNUM,    13,    22,    9},
  50.   {FM_IN_JS,    36,    UNUM,    13,    22,    14},
  51.   {FM_FQ_JS,    37,    UN3,    13,    22,    15}
  52. };
  53.  
  54. PARAMETER ms_table[]={
  55.   {MS_NAME,    00,    NM10,    -1,    -1,    -1},
  56.   {MS_MODE,    10,    OMOD,    0,    0,    8},
  57.   {MS_ASSIGN,    11,    AMOD,    0,    0,    10},
  58.   {MS_HOLD,    11,    BIT1,    0,    0,    12},
  59.   {MS_AMP_AT,    31,    SNUM,    12,    21,    14}
  60. };
  61.  
  62. PARAMETER p1_table[] = {
  63.   {P1_MSOUND,    12,    MSND,    1,    1,    8},
  64.   {P1_OCTAVE,    13,    OCT,    1,    1,    12},
  65.   {P1_MOD,    19,    BIT5,    10,    19,    13},
  66.   {P1_LEV_VS,    70,    SNUM,    2,    3,    14},
  67.   {P1_TIME_VS,    69,    SNUM,    2,    3,    15},
  68.   {P1_ST_LEV,    63,    SNUM,    2,    3,    8},
  69.   {P1_AT_LEV,    65,    SNUM,    2,    3,    10},
  70.   {P1_AT_TIME,    64,    UNUM,    2,    3,    9},
  71.   {P1_DC_TIME,    66,    UNUM,    2,    3,    11},
  72.   {P1_RL_LEV,    68,    SNUM,    2,    3,    13},
  73.   {P1_RL_TIME,    67,    UNUM,    2,    3,    12}
  74. };
  75.  
  76. PARAMETER p2_table[] = {
  77.   {P2_MSOUND,    14,    MSND,    -1,    2,    8},
  78.   {P2_OCTAVE,    15,    OCT,    -1,    2,    12},
  79.   {P2_MOD,    19,    BIT6,    10,    19,    13},
  80.   {P2_INTERVAL,    16,    SN12,    -1,    2,    13},
  81.   {P2_DETUNE,    17,    SN50,    -1,    2,    14},
  82.   {P2_DELAY,    18,    UNUM,    -1,    2,    15},
  83.   {P2_LEV_VS,    110,    SNUM,    -1,    4,    14},
  84.   {P2_TIME_VS,    109,    SNUM,    -1,    4,    15},
  85.   {P2_ST_LEV,    103,    SNUM,    -1,    4,    8},
  86.   {P2_AT_LEV,    105,    SNUM,    -1,    4,    10},
  87.   {P2_AT_TIME,    104,    UNUM,    -1,    4,    9},
  88.   {P2_DC_TIME,    106,    UNUM,    -1,    4,    11},
  89.   {P2_RL_LEV,    108,    SNUM,    -1,    4,    13},
  90.   {P2_RL_TIME,    107,    UNUM,    -1,    4,    12}
  91. };
  92.  
  93. PARAMETER f1_table[] = {
  94.   {F1_CUTOFF,    71,    UNUM,    3,    5,    9},
  95.   {F1_KTC,    72,    NOTE,    6,    8,    8},
  96.   {F1_EGI,    74,    UNUM,    3,    5,    12},
  97.   {F1_MOD,    23,    BIT5,    11,    20,    13},
  98.   {F1_LEV_VS,    77,    SNUM,    5,    7,    8},
  99.   {F1_TIME_VS,    76,    UNUM,    5,    7,    10},
  100.   {F1_LEV_KT,    73,    SNUM,    6,    8,    9},
  101.   {F1_TIME_KT,    75,    UNUM,    6,    8,    10},
  102.   {F1_AT_LEV,    79,    SNUM,    4,    6,    9},
  103.   {F1_AT_TIME,    78,    UNUM,    4,    6,    8},
  104.   {F1_AT_VS,    100,    TRI0,    5,    7,    12},
  105.   {F1_AT_KT,    99,    TRI0,    6,    8,    12},
  106.   {F1_DC_LEV,    81,    SNUM,    4,    6,    11},
  107.   {F1_DC_TIME,    80,    UNUM,    4,    6,    10},
  108.   {F1_DC_VS,    100,    TRI1,    5,    7,    13},
  109.   {F1_DC_KT,    99,    TRI1,    6,     8,     13},
  110.   {F1_SS_LEV,    83,    SNUM,    4,    6,    13},
  111.   {F1_SS_TIME,    82,    UNUM,    4,    6,    12},
  112.   {F1_SS_VS,    100,    TRI2,    5,    7,    14},
  113.   {F1_SS_KT,    99,    TRI2,    6,    8,    14},
  114.   {F1_RL_LEV,    85,    SNUM,    4,    6,    15},
  115.   {F1_RL_TIME,    84,    UNUM,    4,    6,    14},
  116.   {F1_RL_VS,    100,    TRI3,    5,    7,    15},
  117.   {F1_RL_KT,    99,    TRI3,    6,    8,    15}
  118. };
  119.  
  120. PARAMETER f2_table[] = {
  121.   {F2_CUTOFF,    111,    UNUM,    -1,    9,    9},
  122.   {F2_KTC,    112,    NOTE,    -1,    12,    8},
  123.   {F2_EGI,    114,    UNUM,    -1,    9,    12},
  124.   {F2_MOD,    23,    BIT6,    11,    20,    13},
  125.   {F2_LEV_VS,    117,    SNUM,    -1,    11,    8},
  126.   {F2_TIME_VS,    116,    UNUM,    -1,    11,    10},
  127.   {F2_LEV_KT,    113,    SNUM,    -1,    12,    9},
  128.   {F2_TIME_KT,    115,    UNUM,    -1,    12,    10},
  129.   {F2_AT_LEV,    119,    SNUM,    -1,    10,    9},
  130.   {F2_AT_TIME,    118,    UNUM,    -1,    10,    8},
  131.   {F2_AT_VS,    140,    TRI0,    -1,    11,    12},
  132.   {F2_AT_KT,    139,    TRI0,    -1,    12,    12},
  133.   {F2_DC_LEV,    121,    SNUM,    -1,    10,    11},
  134.   {F2_DC_TIME,    120,    UNUM,    -1,    10,    10},
  135.   {F2_DC_VS,    140,    TRI1,    -1,    11,    13},
  136.   {F2_DC_KT,    139,    TRI1,    -1,     12,     13},
  137.   {F2_SS_LEV,    123,    SNUM,    -1,    10,    13},
  138.   {F2_SS_TIME,    122,    UNUM,    -1,    10,    12},
  139.   {F2_SS_VS,    140,    TRI2,    -1,    11,    14},
  140.   {F2_SS_KT,    139,    TRI2,    -1,    12,    14},
  141.   {F2_RL_LEV,    125,    SNUM,    -1,    10,    15},
  142.   {F2_RL_TIME,    124,    UNUM,    -1,    10,    14},
  143.   {F2_RL_VS,    140,    TRI3,    -1,    11,    15},
  144.   {F2_RL_KT,    139,    TRI3,    -1,    12,    15}
  145. };
  146.  
  147. PARAMETER a1_table[]={
  148.   {A1_LEVEL,    86,    UNUM,    1,    1,    11},
  149.   {A1_KTC,    87,    NOTE,    9,    15,    8},
  150.   {A1_LEV_VS,    89,    SNUM,    8,    14,    9},
  151.   {A1_TIME_VS,    91,    UNUM,    8,    14,    10},
  152.   {A1_LEV_KT,    88,    SNUM,    9,    15,    9},
  153.   {A1_TIME_KT,    90,    UNUM,    9,    15,    10},
  154.   {A1_AT_LEV,    93,    UNUM,    7,    13,    9},
  155.   {A1_AT_TIME,    92,    UNUM,    7,    13,    8},
  156.   {A1_AT_VS,    102,    TRI0,    8,    14,    12},
  157.   {A1_AT_KT,    101,    TRI0,    9,    15,    12},
  158.   {A1_DC_LEV,    95,    UNUM,    7,    13,    11},
  159.   {A1_DC_TIME,    94,    UNUM,    7,    13,    10},
  160.   {A1_DC_VS,    102,    TRI1,    8,    14,    13},
  161.   {A1_DC_KT,    101,    TRI1,    9,    15,    13},
  162.   {A1_SS_LEV,    97,    UNUM,    7,    13,    13},
  163.   {A1_SS_TIME,    96,    UNUM,    7,    13,    12},
  164.   {A1_SS_VS,    102,    TRI2,    8,    14,    14},
  165.   {A1_SS_KT,    101,    TRI2,    9,    15,    14},
  166.   {A1_RL_TIME,    98,    UNUM,    7,    13,    14},
  167.   {A1_RL_VS,    102,    TRI3,    8,    14,    15},
  168.   {A1_RL_KT,    101,    TRI3,    9,    15,    15}
  169. };
  170.  
  171. PARAMETER a2_table[]={
  172.   {A1_LEVEL,    126,    UNUM,    -1,    2,    11},
  173.   {A1_KTC,    127,    NOTE,    -1,    18,    8},
  174.   {A1_LEV_VS,    129,    SNUM,    -1,    17,    9},
  175.   {A1_TIME_VS,    131,    UNUM,    -1,    17,    10},
  176.   {A1_LEV_KT,    128,    SNUM,    -1,    18,    9},
  177.   {A1_TIME_KT,    130,    UNUM,    -1,    18,    10},
  178.   {A1_AT_LEV,    133,    UNUM,    -1,    16,    9},
  179.   {A1_AT_TIME,    132,    UNUM,    -1,    16,    8},
  180.   {A1_AT_VS,    142,    TRI0,    -1,    17,    12},
  181.   {A1_AT_KT,    141,    TRI0,    -1,    18,    12},
  182.   {A1_DC_LEV,    135,    UNUM,    -1,    16,    11},
  183.   {A1_DC_TIME,    134,    UNUM,    -1,    16,    10},
  184.   {A1_DC_VS,    142,    TRI1,    -1,    17,    13},
  185.   {A1_DC_KT,    141,    TRI1,    -1,    18,    13},
  186.   {A1_SS_LEV,    137,    UNUM,    -1,    16,    13},
  187.   {A1_SS_TIME,    136,    UNUM,    -1,    16,    12},
  188.   {A1_SS_VS,    142,    TRI2,    -1,    17,    14},
  189.   {A1_SS_KT,    141,    TRI2,    -1,    18,    14},
  190.   {A1_RL_TIME,    138,    UNUM,    -1,    16,    14},
  191.   {A1_RL_VS,    142,    TRI3,    -1,    17,    15},
  192.   {A1_RL_KT,    141,    TRI3,    -1,    18,    15}
  193. };
  194.  
  195. char *multisound[] = {
  196. "Piano     ",    "E.Piano 1 ",    "E.Piano 2 ",    "Clav      ",    "Harpsicord",
  197. "Organ 1   ",    "Organ 2   ",    "MagicOrgan",    "Guitar 1  ",    "Guitar 2  ",
  198. "E. Guitar ",    "Sitar 1   ",    "Sitar 2   ",    "A. Bass   ",    "Pick Bass ",
  199. "E. Bass   ",    "Fretless  ",    "SynthBass1",    "SynthBass2",    "Vibes     ",
  200. "Bell      ",    "Tubular   ",    "Bell Ring ",    "Karimba   ",    "KarimbaNT ",
  201. "SynMallet ",    "Flute     ",    "Pan Flute ",    "Bottles   ",    "Voices    ",
  202. "Choir     ",    "Strings   ",    "Brass 1   ",    "Brass 2   ",    "Tenor Sax ",
  203. "Mute TP   ",    "Trumpet   ",    "TubaFlugel",    "DoubleReed",    "Koto Trem ",
  204. "BambooTrem",    "Rhythm    ",    "Lore      ",    "Lore NT   ",    "Flexatone ",
  205. "WindBells ",    "Pole      ",    "Pole NT   ",    "Block     ",    "Block NT  ",
  206. "FingerSnap",    "Pop       ",    "Drop      ",    "Drop NT   ",    "Breath    ",
  207. "Breath NT ",    "Pluck     ",    "Pluck NT  ",    "Vibe Hit  ",    "VibeHit NT",
  208. "Hammer    ",    "Metal Hit ",    "MetalHitNT",    "Pick      ",    "Distortion",
  209. "Dist NT   ",    "Bass Thumb",    "BasThumNT1",    "BasThumNT2",    "Wire      ",
  210. "Pan Wave  ",    "Ping Wave ",    "Fv Wave   ",    "Mv Wave   ",    "Voice Wave",
  211. "VoiceWvNT1",    "VoiceWvNT2",    "DWGS E.P.1",    "DWGS E.P.2",    "DWGS E.P.3",
  212. "DWGS Piano",    "DWGS Clav ",    "DWGS Vibe ",    "DWGS Bass1",    "DWGS Bass2",
  213. "DWGS Bell ",    "DWGS Orgn1",    "DWGS Orgn2",    "DWGS Voice",    "SquareWave",
  214. "Digital 1 ",    "Saw Wave  ",    "Digital 2 ",    "25% Pulse ",    "10% Pulse ",
  215. "Digital 3 ",    "Digital 4 ",    "Digital 5 ",    "DWGS TRI  ",    "DWGS Sine "
  216. };
  217.  
  218. char *drum_sound[] = {
  219. "OFF       ",    "Kick 1    ",    "Kick 2    ",    "Kick 3    ",    "Snare 1   ",
  220. "Snare 2   ",    "Snare 3   ",    "Snare 4   ",    "Side Stick",    "Tom 1     ",
  221. "Tom 2     ",    "Closed HH1",    "Open HH 1 ",    "Closed HH2",    "Open HH 2 ",
  222. "Crash     ",    "Conga 1   ",    "Conga 2